/**
 * example:[[1,3],[2,6],[8,10]]
 * return :[[1,6],[8,10]]
 */
var merge = function (intervals) {
    if (intervals.length < 2) {
        return intervals
    }
    // 按区间起始位置排序
    intervals.sort((a, b) => {
        return a[0] - b[0]
    })
    // 初始化当前区间
    let curr = intervals[0]
    let result = []
    for (const interval of intervals) {
        // 当前区间的终止位大于当前区间的起始位就可以合并
        if (curr[1] >= interval[0]) {
            curr[1] = Math.max(curr[1], interval[1])
        } else {
            // 否则就把curr加入result，并更新curr
            result.push(curr)
            curr = interval
        }
    }

    // 最后一个区间不会进入for循环的else部分，因此需要额外加入result
    if (curr.length !== 0) {
        result.push(curr)
    }

    return result
}